package com.employeemanage.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.employeemanage.domain.bean.TblEmployee;
import com.employeemanage.domain.resp.PageResult;
import com.employeemanage.domain.vo.EmployeeAddVo;
import com.employeemanage.domain.vo.EmployeeListVo;
import com.employeemanage.domain.vo.EmployeeUpdateVo;
import com.employeemanage.domain.vo.EmployeePerformanceListVo;
import com.employeemanage.domain.vo.EmployeePerformanceUpdateVo;
import com.employeemanage.domain.vo.EmployeePerformanceResponseVo;

/**
* @author 郭可欣
* @description 针对表【tbl_employee(员工表)】的数据库操作Service
* @createDate 2025-07-05 14:15:33
*/
public interface TblEmployeeService extends IService<TblEmployee> {

    /**
     * 获取员工列表
     * @param employeeListVo 查询条件
     * @return 分页结果
     */
    PageResult<TblEmployee> getEmployeeList(EmployeeListVo employeeListVo);

    /**
     * 新增员工
     * @param employeeAddVo 员工信息
     * @return 新增员工ID
     */
    Long addEmployee(EmployeeAddVo employeeAddVo);

    /**
     * 更新员工信息
     * @param employeeUpdateVo 员工信息
     * @return 是否成功
     */
    boolean updateEmployee(EmployeeUpdateVo employeeUpdateVo);

    /**
     * 删除员工
     * @param id 员工ID
     * @return 是否成功
     */
    boolean deleteEmployee(Long id);

    /**
     * 获取员工绩效列表
     * @param performanceListVo 查询条件
     * @return 分页结果
     */
    PageResult<EmployeePerformanceResponseVo> getEmployeePerformanceList(EmployeePerformanceListVo performanceListVo);

    /**
     * 更新员工绩效
     * @param performanceUpdateVo 绩效信息
     * @return 是否成功
     */
    boolean updateEmployeePerformance(EmployeePerformanceUpdateVo performanceUpdateVo);

    /**
     * 删除员工绩效（重置为0）
     * @param id 员工ID
     * @return 是否成功
     */
    boolean deleteEmployeePerformance(Long id);

    TblEmployee login(TblEmployee account);
}
